#!/usr/bin/env bash
#
# Run unit tests and create report
#
# TESTFLAGS - add additional test flags. Ex:
#
#   TESTFLAGS='-v -run TestBuild' hack/test/unit
#
# TESTDIRS - run tests for specified packages. Ex:
#
#   TESTDIRS='./pkg/term' hack/test/unit
#
set -eu -o pipefail

BUILDFLAGS=(-tags 'netgo seccomp libdm_no_deferred_remove')
TESTFLAGS+=" -test.timeout=${TIMEOUT:-5m}"
TESTDIRS="${TESTDIRS:-./...}"
exclude_paths='/vendor/|/integration'
pkg_list=$(go list $TESTDIRS | grep -vE "($exclude_paths)")

mkdir -p bundles
gotestsum --format=standard-quiet --jsonfile=bundles/go-test-report.json --junitfile=bundles/junit-report.xml -- \
	"${BUILDFLAGS[@]}" \
	-cover \
	-coverprofile=bundles/profile.out \
	-covermode=atomic \
	${TESTFLAGS} \
	${pkg_list}
